home *** CD-ROM | disk | FTP | other *** search
/ PC World 2008 September / PCWorld_2008-09_cd.bin / v cisle / sadanastroju / forecastfox___-0.9.7.6-fx.xpi / defaults / upgrade.js < prev   
Text File  |  2008-06-03  |  13KB  |  339 lines

  1. ({
  2.   "0.7": function upgrade_0_7_0() { return "0.7.1"; },
  3.   "0.7.1": function upgrade_0_7_1() {
  4.    
  5.     //loop through the items
  6.     for (var id in comp._items) {
  7.       var item = comp._items[id]; 
  8.       
  9.       //add new prefs
  10.       item.setProperty("radar.cache", "");
  11.       item.setProperty("radar.panel.enabled", true);
  12.       item.setProperty("radar.panel.display", 0);
  13.       item.setProperty("radar.panel.label", "chrome://forecastfox/locale/forecastfox.properties"); 
  14.       item.setProperty("radar.tooltip.enabled", true);
  15.       item.setProperty("radar.tooltip.display", 0);
  16.       item.setProperty("radar.tooltip.label", "chrome://forecastfox/locale/forecastfox.properties"); 
  17.       item.setProperty("swa.panel.enabled", true);
  18.       item.setProperty("swa.panel.display", 0);
  19.       item.setProperty("swa.panel.label", "chrome://forecastfox/locale/forecastfox.properties"); 
  20.       item.setProperty("swa.tooltip.enabled", true);
  21.       item.setProperty("swa.tooltip.display", 2);
  22.       item.setProperty("swa.tooltip.label", "chrome://forecastfox/locale/forecastfox.properties");             
  23.       item.setProperty("swa.slider.enabled", true);
  24.       item.setProperty("swa.slider.display", 1);
  25.       item.setProperty("swa.slider.title", "chrome://forecastfox/locale/forecastfox.properties");
  26.       item.setProperty("swa.slider.label", "chrome://forecastfox/locale/forecastfox.properties");  
  27.       
  28.       //reset location pref
  29.       var value = item.getProperty("general.locid");
  30.       if (value.length != 5)
  31.         item.setProperty("general.locid", "00000");
  32.         
  33.       //delete old prefs
  34.       item.deleteProperty("links.last");
  35.       item.deleteProperty("links.cache");
  36.         
  37.       var properties = item.properties;
  38.       while (properties.hasMore()) {
  39.         var property = properties.getNext();
  40.         
  41.         //clear cache prefs
  42.         if (property.match("cache"))
  43.           item.setProperty(property, "");
  44.         if (property.match("last"))
  45.           item.setProperty(property, "");
  46.         
  47.         //convert label prefs  
  48.         if (property.match("label") || property.match("title")) {
  49.           value = item.getProperty(property);
  50.           if (value.substring(0,3) == "ff.")
  51.             item.setProperty(property, "chrome://forecastfox/locale/forecastfox.properties");
  52.           if (value.substring(0,3) == "wf.")
  53.             item.setProperty(property, "chrome://forecastfox/locale/forecastfox.properties");
  54.         }
  55.       }       
  56.     }
  57.     
  58.     return "0.7.5"; 
  59.   },  
  60.   "0.7.5": function upgrade_0_7_5() { return "0.7.6"; },  
  61.   "0.7.6": function upgrade_0_7_6() { return "0.7.7"; },  
  62.   "0.7.7": function upgrade_0_7_7() { return "0.7.8"; },    
  63.   "0.7.8": function upgrade_0_7_8() { return "0.7.9"; },        
  64.   "0.7.9": function upgrade_0_7_9() {
  65.   
  66.     //loop through the items
  67.     for (var id in comp._items) {
  68.       var item = comp._items[id]; 
  69.       
  70.       //add new prefs 
  71.       item.setProperty("swa.slider.freq", 2);
  72.       item.setProperty("swa.slider.count", 1);
  73.       item.setProperty("general.last", "0");
  74.       item.setProperty("general.cache", "");
  75.       item.setProperty("general.freq", 30);
  76.       
  77.       //delete old prefs
  78.       item.deleteProperty("cc.last");
  79.       item.deleteProperty("cc.cache");
  80.       item.deleteProperty("dayf.last");
  81.       item.deleteProperty("dayf.cache");             
  82.     }
  83.     return "0.8"; 
  84.   },    
  85.   "0.8": function upgrade_0_8_0() { return "0.8.1"; },        
  86.   "0.8.1": function upgrade_0_8_1() { 
  87.   
  88.     //loop through the items
  89.     for (var id in comp._items) {
  90.       var item = comp._items[id]; 
  91.       
  92.       //add new prefs 
  93.       item.setProperty("swa.tooltip.title", "chrome://forecastfox/locale/forecastfox.properties");
  94.       item.setProperty("radar.tooltip.title", "chrome://forecastfox/locale/forecastfox.properties");
  95.       item.setProperty("cc.tooltip.title", "chrome://forecastfox/locale/forecastfox.properties");
  96.       item.setProperty("dayt.tooltip.title", "chrome://forecastfox/locale/forecastfox.properties");    
  97.       item.setProperty("dayf.tooltip.title", "chrome://forecastfox/locale/forecastfox.properties");
  98.       item.setProperty("icons.current", "default");  
  99.     }
  100.     return "0.8.2"; 
  101.   },    
  102.   "0.8.2": function upgrade_0_8_2() {
  103.    
  104.     //loop through the items
  105.     for (var id in comp._items) {
  106.       var item = comp._items[id];
  107.       
  108.       //add new prefs 
  109.       item.setProperty("units.degrees.0", "chrome://forecastfox/locale/forecastfox.properties");
  110.       item.setProperty("units.degrees.1", "chrome://forecastfox/locale/forecastfox.properties");
  111.       item.setProperty("units.pressure.0", "chrome://forecastfox/locale/forecastfox.properties");
  112.       item.setProperty("units.pressure.1", "chrome://forecastfox/locale/forecastfox.properties");
  113.       item.setProperty("units.temp.0", "chrome://forecastfox/locale/forecastfox.properties");
  114.       item.setProperty("units.temp.1", "chrome://forecastfox/locale/forecastfox.properties");
  115.       item.setProperty("units.speed.0", "chrome://forecastfox/locale/forecastfox.properties");
  116.       item.setProperty("units.speed.1", "chrome://forecastfox/locale/forecastfox.properties");
  117.       item.setProperty("units.dist.0", "chrome://forecastfox/locale/forecastfox.properties");
  118.       item.setProperty("units.dist.1", "chrome://forecastfox/locale/forecastfox.properties");
  119.       item.setProperty("units.precip.0", "chrome://forecastfox/locale/forecastfox.properties");
  120.       item.setProperty("units.precip.1", "chrome://forecastfox/locale/forecastfox.properties");
  121.       item.setProperty("units.percent.0", "chrome://forecastfox/locale/forecastfox.properties");
  122.       item.setProperty("units.percent.1", "chrome://forecastfox/locale/forecastfox.properties");
  123.       
  124.       //convert unit prefs   
  125.       item.setProperty("units.current", item.getProperty("units"));
  126.       item.deleteProperty("units");
  127.     }
  128.     return "0.8.5"; 
  129.   },    
  130.   "0.8.5": function upgrade_0_8_5() { 
  131.   
  132.     //clear icons
  133.     comp._dskSvc.clear(TYPE_ICONS, false);
  134.     
  135.     //loop through the items
  136.     for (var id in comp._items) {
  137.       var item = comp._items[id];
  138.       
  139.       //add new prefs 
  140.       item.setProperty("name", id);
  141.       
  142.       //delete old prefs
  143.       item.deleteProperty("profile.switch.delay");
  144.       item.deleteProperty("profile.switch.enabled");
  145.     }
  146.     return "0.9"; 
  147.   },    
  148.   "0.9": function upgrade_0_9_0() { return "0.9.2"; },
  149.   "0.9.2": function upgrade_0_9_2() { return "0.9.3"; },        
  150.   "0.9.3": function upgrade_0_9_3() { 
  151.     
  152.     //clear cache files from the profile directory
  153.     comp._dskSvc.clear(TYPE_PROFILE, true);
  154.     
  155.     //loop through the items
  156.     for (var id in comp._items) {
  157.       var item = comp._items[id];
  158.       
  159.       //remove preference that should have been excluded
  160.       item.deleteProperty("migrated.prefs");
  161.       item.deleteProperty("links.alert");
  162.       item.deleteProperty("links.dialog");
  163.       item.deleteProperty("links.panel");
  164.       item.deleteProperty("links.context");
  165.   
  166.       //remove unused pref
  167.       item.deleteProperty("radar.cache");
  168.       item.deleteProperty("general.cache");
  169.       
  170.       //move delay to its new pref
  171.       item.setProperty("general.delay", item.getProperty("general.freq"));
  172.       item.deleteProperty("general.freq");
  173.       
  174.       //convert uom prefs to label changes 
  175.       
  176.       //function to lookup a converter for a given variable
  177.       function lookupOld(aText) { 
  178.         var converters = { 
  179.           "degrees": ["lat", "lon"],
  180.           "pressure": ["barr"],
  181.           "temp": ["tmp", "flik", "hi", "low", "rlfeelhi", "rlfeellow"],
  182.           "speed": ["windgust", "winds"],
  183.           "dist": ["vis"],
  184.           "precip": ["precip", "rainamnt", "snowamnt"],
  185.           "percent": ["tstorm"]
  186.         };
  187.         for (var converter in converters){
  188.           if (converters[converter].indexOf(aText) != -1)
  189.             return converter;
  190.         }
  191.         return null;
  192.       }
  193.             
  194.       //function to replace a variable with a combined variable uom                
  195.       function replace(aContent) {
  196.       
  197.         //get the current uom
  198.         var units = item.getProperty("units.current");
  199.         if (!units || units.match("chrome://"))
  200.           units = getBundle().GetStringFromName("forecastfox.units.current");
  201.           
  202.         //get the converter for the variable text
  203.         var text = aContent.substring(1, aContent.length -1);          
  204.         var converter = lookupOld(text);
  205.         if (converter == null)
  206.           return aContent;
  207.           
  208.         //get the user setting for the uom & converter
  209.         var setting = item.getProperty("units." + converter + "." + units);
  210.         if (!setting || setting == "none" || setting.match("chrome://"))
  211.           return aContent;
  212.           
  213.         //return combined variable & uom  
  214.         return ("[" + text + "+" + setting.toLowerCase().replace("/", "") + "]");
  215.       }
  216.       
  217.       //looop through the label values
  218.       var names = ["radar.panel.label", "radar.tooltip.title", 
  219.                    "radar.tooltip.label", "swa.panel.label",
  220.                    "swa.tooltip.title", "swa.tooltip.label",
  221.                    "swa.slider.title", "swa.slider.label",
  222.                    "cc.panel.label",  "cc.tooltip.title", 
  223.                    "cc.tooltip.label", "cc.slider.title", 
  224.                    "cc.slider.label", "dayt.panel.label",
  225.                    "dayt.tooltip.title", "dayt.tooltip.label",
  226.                    "dayf.panel.label", "dayf.tooltip.title", 
  227.                    "dayf.tooltip.label" ];
  228.       for (var i=0; i<names.length; i++) {
  229.       
  230.         //get the label
  231.         var label = item.getProperty(names[i]);
  232.         if (label.match("chrome://"))
  233.           label = getBundle().GetStringFromName("forecastfox." + names[i]);
  234.           
  235.         //replace the variables
  236.         label = label.replace(/\[[^\[\]]+\]/g, replace);
  237.         
  238.         //set the property back
  239.         item.setProperty(names[i], label);
  240.       }
  241.           
  242.       //remove the uom prefs
  243.       item.deleteProperty("units.degrees.0");
  244.       item.deleteProperty("units.degrees.1");
  245.       item.deleteProperty("units.pressure.0");
  246.       item.deleteProperty("units.pressure.1");
  247.       item.deleteProperty("units.temp.0");
  248.       item.deleteProperty("units.temp.1");
  249.       item.deleteProperty("units.speed.0");
  250.       item.deleteProperty("units.speed.1");
  251.       item.deleteProperty("units.dist.0");
  252.       item.deleteProperty("units.dist.1");
  253.       item.deleteProperty("units.precip.0");
  254.       item.deleteProperty("units.precip.1");
  255.       item.deleteProperty("units.percent.0");
  256.       item.deleteProperty("units.percent.1");
  257.     }
  258.     
  259.     /**
  260.      * NEEDED FOR NETSCAPE
  261.      * remove the transforms directory
  262.      */ 
  263.     var dir = comp._dskSvc.get("", TYPE_DEFAULTS);
  264.     var file = dir.clone();
  265.     file.append("transforms");
  266.     if (file.exists()) {
  267.       try {
  268.         removeFile(file);
  269.       } catch(e) {}
  270.     }
  271.     
  272.     /**
  273.      * NEEDED FOR NETSCAPE, SEAMONKEY, SUITE
  274.      * remove the components
  275.      */ 
  276.          
  277.     //get the components directory
  278.     dir = getInstallDirectory(["components"]);
  279.     if (!dir.exists())
  280.       dir = getKeyedDirectory("XCurProcD", ["components"], false);
  281.       
  282.     //loop through components
  283.     var comps = ["ffError", "ffParser", "ffPing", "ffProfiles", "ffDisk", 
  284.                  "ffResolver", "ffIconPack", "ffIIconManager", "ffWeb"];    
  285.     for (i=0; i<comps.length; i++) {
  286.       
  287.       //loop through file extensions
  288.       var ext = [".js", ".xpt"];
  289.       for (var j=0; j<ext.length; j++) {
  290.       
  291.         //remove the file
  292.         file = dir.clone();
  293.         file.append(comps[i] + ext[j]);
  294.         if (file.exists()) {
  295.           try {
  296.             removeFile(file);
  297.           } catch(e) {}
  298.         }
  299.       }
  300.     }
  301.     
  302.     /**
  303.      * NEEDED FOR NETSCAPE, SEAMONKEY, SUITE
  304.      * remove the icons directory
  305.      */ 
  306.     dir = comp._dskSvc.get("", TYPE_DEFAULTS);
  307.     file = dir.clone();
  308.     file.append("icons");
  309.     if (file.exists()) {
  310.       try {
  311.         removeFile(file);
  312.       } catch(e) {}
  313.     }
  314.        
  315.     return "0.9.5"; 
  316.   },
  317.   
  318.   "0.9.5": function upgrade_0_9_5() {
  319.     // convert the default display for each profile to icon + text
  320.     for (var id in comp._items) {
  321.       var item = comp._items[id];
  322.       
  323.       item.deleteProperty("migrated.prefs");
  324.       
  325.       if ((item.getProperty("cc.panel.display") == 0) &&
  326.           (item.getProperty("dayt.panel.display") == 0) &&
  327.           (item.getProperty("dayf.panel.display") == 0)) {
  328.         item.setProperty("cc.panel.display", 2);
  329.         item.setProperty("dayt.panel.display", 2);
  330.         item.setProperty("dayf.panel.display", 2);
  331.       }
  332.     }
  333.     
  334.     return "0.9.6";
  335.   },
  336.   
  337.   "0.9.6": function upgrade_0_9_6() { return "0.9.7"; },
  338.   "0.9.7": function upgrade_0_9_7() { return "0.9.7.5"; }
  339. });